<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>

    <script>

        // 递归判断质数
        //   n % 2   n % 3   n % 4 ...    ----- n % i

        // var i = 2 ;    // i 是在外面声明的
        // function isZhi(n) { 
        //     if(i === n) return true ;
        //     // 这里相当于提前结束了循环
        //     if(n % i === 0) return false ;
        //     i++ ;
        //     return isZhi(n) ;
        // }



        // 优化
        //  i从2开始自增，始终需要带入到下一轮函数    
        //  以参数的形式把i带入下一轮  
        function isZhi(n , i) {
            i = i || 2 ;
            if(i === n) return true ;
            if( n % i === 0) return false ;
            return isZhi(n , i + 1) ;
        }


        // document.write(isZhi(9));










        // 求最大公约数   
        //   4   14   
        //  a%4  b%4      
        //  a%3  b%3
        //  a%2  b%2
        //  a%1  b%1

        //  结束的条件   同时整除
        // 思路      58a b报错
        // var i = Math.min(a , b) ;
        // function gbs(a , b) {
        //     if(a % i === 0 && b % i === 0) return i ;
        //     i--;
        //     gbs(a , b) ;
        // }

        function gbs(a , b , i) {
            i = i || Math.min(a , b) ;
            if(a % i === 0 && b % i === 0) return i ;
            gbs(a , b , i - 1) ;
        }

        gbs(4,14);



        // 最小公倍数   gcd(a , b ,)
        //  n%a  n%b     n从a和b中较大的那个值开始
        //  





    </script>
    
</body>
</html>